package cn.wen.bases.dao.ibatis;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

/**
 * Title：iBatis 数据访问对象
 * <p>
 * Description：
 * <p>
 * Copyright：Copyright (c) 2010-2012
 * 
 * @author <a href="mailto:ct_wen@qq.com">ctwen</a>, 温承瑭
 * @version Revision：1.0 Date：2010/11/20 Description：初完成。
 *          <p>
 */
public class BaseDao extends SqlMapClientDaoSupport {

    /**
     * 实现iBatis的插入功能，保存到数据库中。
     * 
     * @param sqlMap SQL映射字符串
     * @param model 操作实体
     * @return 是否成功。
     */
    public boolean doSave(String sqlMap, Object model) {
	Object o = getSqlMapClientTemplate().insert(sqlMap, model);
	return o != null ? true : false;
    }

    /**
     * 实现iBatis的删除功能，从数据库中删除。
     * 
     * @param sqlMap SQL映射字符串
     * @param model 操作实体
     * @return 是否成功。
     */
    public boolean doDel(String sqlMap, Object model) {
	Object o = getSqlMapClientTemplate().delete(sqlMap, model);
	return o != null ? true : false;
    }

    /**
     * 实现iBatis的更新功能，在数据库中更新。
     * 
     * @param sqlMap SQL映射字符串
     * @param model 操作实体
     * @return 是否成功。
     */
    public boolean doMod(String sqlMap, Object model) {
	Object o = getSqlMapClientTemplate().update(sqlMap, model);
	return o != null ? true : false;
    }

    /**
     * 实现iBatis的查询功能，返回列表给操作实体。
     * 
     * @param sqlMap SQL映射字符串
     * @param model 操作实体
     * @return
     */
    public Object doQueryForList(String sqlMap, Object model) {
	// model.setEml(getSqlMapClientTemplate().queryForList(sqlMap, model));
	return model;
    }

    /**
     * 实现iBatis的查询功能，返回一个对象给操作实体。
     * 
     * @param sqlMap SQL映射字符串
     * @param model 操作实体
     * @return
     */
    public Object doQueryForObject(String sqlMap, Object model) {
	// model.setEm((Map) getSqlMapClientTemplate().queryForObject(sqlMap, model));
	return model;
    }

}
